//
//  XMLayoutAttribute.swift
//  new_dm
//
//  Created by 杨雪剑 on 16/8/19.
//  Copyright © 2016年 YXJ. All rights reserved.
//

import UIKit

class XMLayoutAttribute: NSObject {

    //约束方向
    var view :UIView?
    
    var layoutAttri:NSLayoutAttribute?
    
    var superLayoutAttri:NSLayoutAttribute?
    
    var toItem:UIView?
    
    var contstrain :NSLayoutConstraint?
    
    var brotherView:UIView?
    
    
    func xj_equalTo(parment:CGFloat)  {
        
        self .makeTraditionRestain(parment: parment)
        
    }
    
    func makeTraditionRestain (parment:CGFloat) {
    
        if layoutAttri == NSLayoutAttribute.width || layoutAttri == NSLayoutAttribute.height {
            
            superLayoutAttri = NSLayoutAttribute.notAnAttribute
            
            toItem = nil
            
        }else {
            
            superLayoutAttri = layoutAttri
            
            toItem = view?.superview
            
        }
        
        let consta = NSLayoutConstraint.init(item: view!, attribute: layoutAttri!, relatedBy:NSLayoutRelation.equal, toItem: toItem, attribute: superLayoutAttri!, multiplier: 1, constant: parment)
        
        if layoutAttri == NSLayoutAttribute.width || layoutAttri == NSLayoutAttribute.height {
            
            view?.addConstraint(consta)
            
        }else{
            
            view?.superview?.addConstraint(consta)
        }

}
    
    func xj_equalTo(brotherLayattri:XMLayoutAttribute) -> XMLayoutAttribute{
        
        superLayoutAttri = brotherLayattri.layoutAttri
        
        brotherView = brotherLayattri.view
        
        return self
    }
    
    func xj_equal(releative:XMLayoutAttribute)  {
        
        superLayoutAttri = releative.layoutAttri
        
        brotherView = releative.view
        
        self .xj_offset(parment: 0)
    }
    
    func xj_offset(parment:CGFloat) {
        
        contstrain = NSLayoutConstraint.init(item: view!, attribute: layoutAttri!, relatedBy:NSLayoutRelation.equal, toItem: brotherView, attribute: superLayoutAttri!, multiplier: 1, constant: parment)
        
        if brotherView?.superview != nil {
            
            brotherView?.superview?.addConstraint(contstrain!)
        }else {
            
            brotherView?.addConstraint(contstrain!)
            
        }
        
        
    }
    
    
    override init() {

        super.init()
        
    }
    
    
    
}



